package com.ailanyin.modules.job.exceptions;

/**
 * 计划策略异常
 *
 * @author ailanyin
 */
public class TaskException extends Exception {

    private static final long serialVersionUID = 1L;

    private Code code;

    public TaskException(String msg, Code code) {
        this(msg, code, null);
    }

    public TaskException(String msg, Code code, Exception nestedEx) {
        super(msg, nestedEx);
        this.code = code;
    }

    public Code getCode() {
        return code;
    }

    /**
     * 异常原因
     */
    public enum Code {
        /**
         * 已存在
         */
        TASK_EXISTS,
        /**
         * 不存在
         */
        NO_TASK_EXISTS,
        /**
         * 已经运行
         */
        TASK_ALREADY_STARTED,
        /**
         * 不知道
         */
        UNKNOWN,
        /**
         * 配置错误
         */
        CONFIG_ERROR,
        /**
         * 节点error
         */
        TASK_NODE_NOT_AVAILABLE
    }

}
